package com.axdoc.wallet.service;

import java.sql.Timestamp;
import java.util.List;

import com.axdoc.wallet.entity.DoctorBalanceSubWallet;
import com.axdoc.wallet.entity.DoctorBalanceSubWalletRecords;
import com.axdoc.wallet.entity.DoctorWallet;
import com.axdoc.wallet.exceptions.WalletBizException;

/**
 * 医生账户服务接口
 * 
 * @author sunzhaoli
 *
 */
public interface DoctorWalletService {
	/**
	 * 创建医生账户
	 * 
	 * @param docid
	 *            医生id
	 * @param walletType
	 *            账户类型：1个人/0团体
	 * @return
	 * @throws WalletBizException
	 * @throws Exception
	 */
	public boolean createDoctorWallet(String docid, int walletType) throws WalletBizException, Exception;

	/**
	 * 根据docid查询医生账户信息
	 * 
	 * @param docid
	 *            医生id
	 * @return
	 * @throws WalletBizException
	 * @throws Exception
	 */
	public DoctorWallet queryDoctorWalletByDocid(String docid) throws WalletBizException, Exception;

	/**
	 * 根据docid查询医生余额子账户信息
	 * 
	 * @param docid
	 *            医生id
	 * @return
	 * @throws WalletBizException
	 * @throws Exception
	 */
	public DoctorBalanceSubWallet queryDoctorBalanceSubWalletByDocid(String docid) throws WalletBizException, Exception;

	/**
	 * 修改医生余额子账户信息
	 * 
	 * @param doctorBalanceSubWallet
	 * @return
	 * @throws WalletBizException
	 * @throws Exception
	 */
	public boolean updateDoctorBalanceSubWallet(DoctorBalanceSubWallet doctorBalanceSubWallet)
			throws WalletBizException, Exception;

	/**
	 * 查询医生余额子账户流水
	 * 
	 * @param bizNo
	 *            业务单号
	 * @param startTime
	 *            开始时间
	 * @param endTime
	 *            结束时间
	 * @throws WalletBizException
	 * @throws Exception
	 * @return
	 */
	public List<DoctorBalanceSubWalletRecords> queryBalanceRecords(String bizNo, String startTime, String endTime)
			throws WalletBizException, Exception;
}
